PowerSNMP for .NET
Marshal(MessageBase[],String,Object) Method
Example 




Message instances derived from MessageBase to marshal to the UI thread.
String message to pass into the Message event.
Object to pass to the Message event; can be null.
Marshals SNMP messages to the UI thread.
Syntax
Public Overloads Sub Marshal( _
   ByVal messages() As MessageBase, _
   ByVal message As String, _
   ByVal state As Object _
) 
Dim instance As SnmpBase
Dim messages() As MessageBase
Dim message As String
Dim state As Object
 
instance.Marshal(messages, message, state)
public void Marshal( 
   MessageBase[] messages,
   string message,
   object state
)
public: void Marshal( 
   MessageBase*[]* messages,
   string* message,
   Object* state
) 

Parameters

messages
Message instances derived from MessageBase to marshal to the UI thread.
message
String message to pass into the Message event.
state
Object to pass to the Message event; can be null.
Remarks

This method is used to marshal messages from a worker thread to the UI thread for typical display purposes. It calls the OnMessage method, which raises the Message event.

See the SynchronizingObject property for information on updating UI controls in your event handler.

Example
The following example demonstrates sending an SNMPv1 Get request to an agent and receiving the response.
private void button1_Click(object sender, EventArgs e)
{
    //Create and send request on a worker thread
    manager1.Start(manager1_SendGetRequest, manager1.Mib.CreateVariable(NodeName.sysContact));
}

private void button2_Click(object sender, EventArgs e)
{
    //If you don't have the MIB, retrieve the value by IID:
    manager1.Start(manager1_SendGetRequest, new Variable("1.3.6.1.2.1.1.4.0"));
}

private void manager1_SendGetRequest(SnmpSocket managerSocket, object state)
{
    //Create Get Request
    GetMessage request = new GetMessage();
    request.Variables.Add(state as Variable);

    //Send request and get response
    ResponseMessage response = managerSocket.GetResponse(request, myAgentAddress);

    //Marshal response to the UI thread using the Message event
    manager1.Marshal(new ResponseMessage[] { response }, "", null);
}

private void manager1_Message(object sender, MessageEventArgs e)
{
    //Display info about the first variable in the response, and its value
    Variable vari = e.Messages[0].Variables[0];
    label1.Text += vari.Definition.ToString() + vari.Value.ToString() + "\r\n";
}
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    'Create and send request on a worker thread
    manager1.Start(AddressOf manager1_SendGetRequest, manager1.Mib.CreateVariable(NodeName.sysContact))
End Sub

Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs)
    'If you don't have the MIB, retrieve the value by IID:
    manager1.Start(AddressOf manager1_SendGetRequest, New Variable("1.3.6.1.2.1.1.4.0"))
End Sub

Private Sub manager1_SendGetRequest(ByVal managerSocket As SnmpSocket, ByVal state As Object)
    'Create Get Request
    Dim request As New GetMessage()
    request.Variables.Add(TryCast(state, Variable))

    'Send request and get response
    Dim response As ResponseMessage = managerSocket.GetResponse(request, myAgentAddress)

    'Marshal response to the UI thread using the Message event
    manager1.Marshal(New ResponseMessage() { response }, "", Nothing)
End Sub

Private Sub manager1_Message(ByVal sender As Object, ByVal e As MessageEventArgs)
    'Display info about the first variable in the response, and its value
    Dim vari As Variable = e.Messages(0).Variables(0)
    label1.Text &= vari.Definition.ToString() & vari.Value.ToString() & vbCrLf
End Sub
See Also

Reference

SnmpBase Class
SnmpBase Members
Overload List

6.1.1.2
PowerSNMP for .NET Documentation Version 7.0
© 2023 Dart Communications. All Rights Reserved.
Send comments on this topic